#include "JsonFile.h"

#include "Common/StringUtil.h"
#include "Log/Log.h"
#include "Poco/File.h"
#include "Poco/FileStream.h"
#include "Poco/JSON/Parser.h"
#include "Poco/StringTokenizer.h"

JsonFile::JsonFile()
{
}

int JsonFile::Init(std::string strFile)
{
    try
    {
        Poco::File f(strFile);
        if (f.exists() == false)
        {
            zlog.SError("%s not find file [%s]\n", __PRETTY_FUNCTION__, strFile.c_str());
            return -1;
        }

        Poco::FileInputStream fis(strFile);
        Poco::JSON::Parser parser;
        Poco::Dynamic::Var var = parser.parse(fis);
        m_pObj = var.extract<Poco::JSON::Object::Ptr>();
        m_bInit = true;
        m_strFile = strFile;
        return 0;
    }
    catch (...)
    {
        zlog.SError("%s catched, file is [%s]\n", __PRETTY_FUNCTION__, strFile.c_str());
        return -1;
    }
}

void JsonFile::SaveToFile()
{
    try
    {
        Poco::FileOutputStream fos(m_strFile);
        m_pObj->stringify(fos, 2);
    }
    catch (...)
    {
        zlog.SError("%s catched\n", __PRETTY_FUNCTION__);
    }
}
